home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 276-300 / 299 / rxil / src / delete_port.c < prev    next >
C/C++ Source or Header  |  1995-03-14  |  1KB  |  74 lines

  1. /* delete_port.c */
  2.  
  3. /*        Copyright © 1989 by Donald T. Meyer, Stormgate Software
  4.  *        All Rights Reserved
  5.  */
  6.  
  7.  
  8.  
  9. #include "rxil.h"
  10.  
  11.  
  12.  
  13. /* NAME
  14.  *        RxilDeletePort
  15.  *
  16.  * SYNOPSIS
  17.  *        RxilDeletePort( port );
  18.  *
  19.  *        struct MsgPort *port;
  20.  *
  21.  * FUNCTION
  22.  *        This will safely delete a message port used to receive commands
  23.  *        from ARexx.
  24.  *        This is acomplished by setting a failure return code and
  25.  *        replying the message if it is from ARexx.
  26.  *        If the message is not from ARexx, it is merely replied.
  27.  *
  28.  *        WARNING: If the port was/is used to receive replys, there must
  29.  *        be no chance of a reply being pending when this function is
  30.  *        called!
  31.  *
  32.  * INPUTS
  33.  *        port = pointer to a MsgPort.  Normally one that was opened
  34.  *            for receiving ARexx commands.
  35.  *
  36.  * RESULT
  37.  *        None
  38.  *
  39.  * SIDES
  40.  *
  41.  * HISTORY
  42.  *        01-Aug-89    Creation.
  43.  *
  44.  * BUGS
  45.  *
  46.  * SEE ALSO
  47.  *
  48.  */
  49.  
  50. void RxilDeletePort( struct MsgPort *port )
  51. {
  52.     struct RexxMsg *rexxmsg;
  53.  
  54.  
  55.     Forbid();
  56.  
  57.     while( rexxmsg = (struct RexxMsg *)GetMsg( port ) )
  58.     {
  59.         if(  IsRexxMsg( rexxmsg )  )
  60.         {
  61.             /* Set failure code */
  62.             rexxmsg->rm_Result1 = RC_FATAL;
  63.             rexxmsg->rm_Result2 = 0;
  64.         }
  65.  
  66.         ReplyMsg( (struct Message *)rexxmsg );
  67.     }
  68.  
  69.     DeletePort( port );
  70.  
  71.     Permit();
  72. }
  73.  
  74.